home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / DISKS / Issue57 / alfresco / tststr2.dpr < prev    next >
Text File  |  2000-04-08  |  1KB  |  57 lines

  1. program tststr2;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6.   Windows,
  7.   SysUtils;
  8.  
  9. function PosCh(aCh : char; const S : string; aStart : integer) : integer;
  10. var
  11.   i : integer;
  12. begin
  13.   if (aStart < 1) then
  14.     aStart := 1;
  15.   for i := aStart to length(S) do
  16.     if (S[i] = aCh) then begin
  17.       Result := i;
  18.       Exit;
  19.     end;
  20.   Result := 0;
  21. end;
  22.  
  23. function PosChNormal(aCh : char; const S : string) : integer;
  24. begin
  25.   Result := Pos(aCh, S);
  26. end;
  27.  
  28. var
  29.   i : integer;
  30.   StartTime : DWORD;
  31. begin
  32.   writeln(PosCh('a', 'The cat sat on the mat'));
  33.   writeln(PosCh('b', 'The cat sat on the mat'));
  34.   writeln(PosCh('c', 'The cat sat on the mat'));
  35.   writeln(PosCh('m', 'The cat sat on the mat'));
  36.  
  37.   writeln('testing normal routine...');
  38.   StartTime := GetTickCount;
  39.   for i := 1 to 10000000 do
  40.     PosChNormal('j', 'The cat sat on the mat');
  41.   writeln('time taken: ', GetTickCount - StartTime);
  42.  
  43.   writeln('testing pascal routine...');
  44.   StartTime := GetTickCount;
  45.   for i := 1 to 10000000 do
  46.     PosChPascal('j', 'The cat sat on the mat');
  47.   writeln('time taken: ', GetTickCount - StartTime);
  48.  
  49.   writeln('testing assembly routine...');
  50.   StartTime := GetTickCount;
  51.   for i := 1 to 10000000 do
  52.     PosCh('j', 'The cat sat on the mat');
  53.   writeln('time taken: ', GetTickCount - StartTime);
  54.  
  55.   readln;
  56. end.
  57.